#!/bin/sh
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.

set -e
vardir="$1"
method=$2
option=$3

cd "$vardir/methods/floppy"

mountpoint="$vardir/methods/mnt"

. ./shvar.$option

help () {
	echo '
First I need the disk(s) which contain the Packages file(s) for
the parts of the archive you wish to be able to install.  If you
want to install packages from the non-free and contrib areas of
the FTP site you need a floppy with a Packages file for each of
those, in addition to the main Packages file for the main Debian
distribution.  If you don'\''t then you just need one Packages file.'
}

help

xit=1
trap '
	if [ -n "$umount" ]
	then
		umount "$umount"
	fi
	exit $xit
' 0

tryupdate () {
	if [ $success = 1 ]; then return; fi
	if [ ! -f "$mountpoint/Packages" ]; then
		echo "$mountpoint/Packages does not exist.";
		return
	fi
	if dpkg --admindir $vardir --merge-avail "$mountpoint/Packages"
	then
		success=1
		echo '
You may incorporate another Packages file from another floppy if you wish.'
	fi
}

while [ $xit = 1 ]
do
	echo -n '
Insert a disk containing a Packages file, or type q to quit.  '
	read response
	case "$response" in
	[Qq] | [Qq][Uu][Ii][Tt] )
		xit=0
		;;
	* )
		umount="$defaultfloppy"
		if mount -rt "$defaultfstype" "$defaultfloppy" "$mountpoint"
		then
			success=0
			tryupdate Packages
			tryupdate packages
			tryupdate PACKAGES
			umount "$defaultfloppy"
		fi
		umount=""
		;;
	esac
done

echo '
OK, continuing with installation.'

xit=0
